package com.modelo.entity;

import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.UniqueConstraint;

 
@Entity
@Table(name = "proveedor_documento", catalog = "firmes")
public class ProveedorDocumento implements java.io.Serializable {
 
	private static final long serialVersionUID = 1L;
	
	private Integer idProveedorDocumento;
	private Proveedor proveedor;
	private Tipo tipos;
	private Integer documento;
	private Integer idEntidad;
	private Date caducidad;
	private Integer visto;
	private String observaciones;
 
	public ProveedorDocumento() {
	}
 
	public ProveedorDocumento(Integer idProveedorDocumento,
			Proveedor proveedor, Tipo tipos, Integer documento,
			Integer idEntidad) {
		this.idProveedorDocumento = idProveedorDocumento;
		this.proveedor = proveedor;
		this.tipos = tipos;
		this.documento = documento;
		this.idEntidad = idEntidad;
	}
 
	public ProveedorDocumento(Integer idProveedorDocumento,
			Proveedor proveedor, Tipo tipos, Integer documento,
			Integer idEntidad, Date caducidad, Integer visto,
			String observaciones) {
		this.idProveedorDocumento = idProveedorDocumento;
		this.proveedor = proveedor;
		this.tipos = tipos;
		this.documento = documento;
		this.idEntidad = idEntidad;
		this.caducidad = caducidad;
		this.visto = visto;
		this.observaciones = observaciones;
	}
 
	@Id
	@GeneratedValue
	@Column(name = "idProveedor_Documento", unique = true, nullable = false)
	public Integer getIdProveedorDocumento() {
		return this.idProveedorDocumento;
	}

	public void setIdProveedorDocumento(Integer idProveedorDocumento) {
		this.idProveedorDocumento = idProveedorDocumento;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idProveedor", nullable = false)
	public Proveedor getProveedor() {
		return this.proveedor;
	}

	public void setProveedor(Proveedor proveedor) {
		this.proveedor = proveedor;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idTipo", nullable = false)
	public Tipo getTipos() {
		return this.tipos;
	}

	public void setTipos(Tipo tipos) {
		this.tipos = tipos;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idDocumento", nullable = false)
	public Integer getDocumento() {
		return this.documento;
	}

	public void setDocumento(Integer documento) {
		this.documento = documento;
	}

	@Column(name = "idEntidad", nullable = false)
	public Integer getIdEntidad() {
		return this.idEntidad;
	}

	public void setIdEntidad(Integer idEntidad) {
		this.idEntidad = idEntidad;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "caducidad", length = 10)
	public Date getCaducidad() {
		return this.caducidad;
	}

	public void setCaducidad(Date caducidad) {
		this.caducidad = caducidad;
	}

	@Column(name = "visto")
	public Integer getVisto() {
		return this.visto;
	}

	public void setVisto(Integer visto) {
		this.visto = visto;
	}

	@Column(name = "observaciones", length = 2000)
	public String getObservaciones() {
		return this.observaciones;
	}

	public void setObservaciones(String observaciones) {
		this.observaciones = observaciones;
	}

}